<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>test</title>
<script>


//【示例1】要为String扩展一个deentityify方法，其设计任务是寻找字符串中的HTML字符实体并将其替换为对应的字符。在一个对象中保存字符实体的名字及与之对应的字符是有意义的。

String.method('deentityify', function() {
    var entity = {
        quot : '"',
        lt : '<',
        gt : '>'
    };
    return function() {
        return this.replace(/&([^&;]+);/g, function(a, b) {
            var r = entity[b];
            return typeof r === 'string' ? r : a;
        });
    };
}());



document.writeln('&lt;&quot;&gt;'.deentityify()); 	// <">
//【示例2】下面代码构造一个用来产生序列号的对象。serial_maker()函数将返回一个用来产生唯一字符串的对象，这个字符串由两部分组成：字符前缀+序列号。这两部分可以分别使用set_prefix和set_seq方法进行设置，然后调用实例对象的gensym方法读取这个字符串。当执行该方法，都会自动产生唯一一个字符串。
var serial_maker = function() {
    var prefix = '';
    var seq = 0;
    return {
        set_prefix : function(p) {
            prefix = String(p);
        },
        set_seq : function(s) {
            seq = s;
        },
        gensym : function() {
            var result = prefix + seq;
            seq += 1;
            return result;
        }
    };
};
var seqer = serial_maker();
seqer.set_prefix('Q');
seqer.set_seq(1000);
var unique = seqer.gensym();	//"Q1000"
var unique = seqer.gensym();	//"Q1001"


</script>
</head>
<body>




</body>
</html>
